Social networking with video annotation

ABSTRACT

A method and system for annotating Playable Media Files in a social network having a plurality of members, wherein the method includes receiving the Playable Media File from a first member, receiving an annotation from another member, and saving the annotation in a file other than the Playable Media File.

CROSS-REFERENCE TO RELATED APPLICATIONS

This is a divisional of U.S. patent application Ser. No. 15/269,879entitled “SOCIAL NETWORKING WITH VIDEO ANNOTATION” and filed on Sep. 19,2016, which is a Continuation-In-Part patent application of a UnitedStates Non-Provisional patent application having Ser. No. 14/170,149,filed on Jan. 31, 2104, now U.S. Pat. No. 9,451,001, which claimedpriority to United States Provisional patent application having Ser. No.61/759,219, filed on Jan. 31, 2013. The disclosure of each of theabove-identified patent documents is incorporated herein by reference inits entirety.

FIELD OF THE INVENTION

Embodiments generally relate to assemblies, methods, devices, andsystems for managing information, and more particularly, to assemblies,methods, devices, and systems for sharing and annotating video databetween members of a social network.

SUMMARY OF THE INVENTION

A method to create and save an annotation associated with a PlayableMedia File is disclosed. The method includes receiving a Playable MediaFile, creating an annotation relating to the Playable Media File,providing the annotation to a network server, providing a data profileto the network server, wherein the data profile comprises a location inthe Playable Media File where the annotation should be made visible,determining by the network server if the annotation is a firstannotation submitted for the Playable media File, if the annotation isnot a first annotation submitted for the Playable Media File, encodingthe data profile in a previously-created table of contents for thePlayable Media File, if the annotation is a first annotation submittedfor the Playable Media File, then creating a table of contents by thenetwork server for the Playable Media File and encoding by the networkserver the data profile in the table of contents, wherein the PlayableMedia File is selected from the group consisting of an audio file, avideo file, an audiovisual file, slide show, AVI file, MP3 file, MP4file, WMA file, WAV file, Flash, and MPEG file.

An article of manufacture is disclosed. Applicants' article ofmanufacture comprises a processor, a computer readable medium comprisingcomputer readable program code disposed therein to create and save anannotation associated with a Playable Media File, the computer readableprogram code comprising a series of computer readable program steps tocause the processor to effect receiving a Playable Media File, creatingan annotation relating to the Playable Media File, providing theannotation to a network server, providing a data profile to the networkserver, wherein the data profile comprises a location in the PlayableMedia File where the annotation should be made visible, determining bythe network server if the annotation is a first annotation submitted forthe Playable media File, if the annotation is not a first annotationsubmitted for the Playable Media File, encoding the data profile in apreviously-created table of contents for the Playable Media File, if theannotation is a first annotation submitted for the Playable Media File,then creating a table of contents by the network server for the PlayableMedia File and encoding by the network server the data profile in thetable of contents, wherein the Playable Media File is selected from thegroup consisting of an audio file, a video file, an audiovisual file,slide show, AVI file, MP3 file, MP4 file, WMA file, WAV file, Flash, andMPEG file.

A non-transitory computer usable medium encoded with a computer programproduct to create and save an annotation associated with a PlayableMedia File and usable with programmable computer processor disposedwithin a controller, is disclosed. Applicants' computer program productcomprises computer readable program code which causes the programmablecomputer processor to receive a Playable Media File, create anannotation relating to the Playable Media File, provide the annotationto a network server, provide a data profile to the network server,wherein the data profile comprises a location in the Playable Media Filewhere the annotation should be made visible, determine by the networkserver if the annotation is a first annotation submitted for thePlayable media File, if the annotation is not a first annotationsubmitted for the Playable Media File, encode the data profile in apreviously-created table of contents for the Playable Media File, if theannotation is a first annotation submitted for the Playable Media File,then create a table of contents by the network server for the PlayableMedia File and encode by the network server the data profile in thetable of contents, wherein the Playable Media File is selected from thegroup consisting of an audio file, a video file, an audiovisual file,slide show, AVI file, MP3 file, MP4 file, WMA file, WAV file, Flash, andMPEG file.

BRIEF DESCRIPTION OF THE DRAWINGS

The invention will be better understood from a reading of the followingdetailed description taken in conjunction with the drawings in whichlike reference designators are used to designate like elements, and inwhich:

FIG. 1 illustrates an exemplary embodiment of a system for annotatingvideo within a social network;

FIG. 2 illustrates another exemplary embodiment of a system forannotating video within a social network;

FIG. 3 is a table of information fields stored in association with eachPlayable Media File;

FIG. 4 is a flowchart of the method and/or process related to annotatingPlayable Media File within a social network;

FIG. 5A summarizes additional steps in Applicants' method, additionalsteps implemented by Applicants' article of manufacture, and additionalsteps performed by a programmable processor implementing Applicants'computer program product;

FIG. 5B summarizes additional steps in Applicants' method, additionalsteps implemented by Applicants' article of manufacture, and additionalsteps performed by a programmable processor implementing Applicants'computer program product;

FIG. 6 summarizes additional steps in Applicants' method, additionalsteps implemented by Applicants' article of manufacture, and additionalsteps performed by a programmable processor implementing Applicants'computer program product;

FIG. 7 summarizes additional steps in Applicants' method, additionalsteps implemented by Applicants' article of manufacture, and additionalsteps performed by a programmable processor implementing Applicants'computer program product;

FIG. 8 summarizes additional steps in Applicants' method, additionalsteps implemented by Applicants' article of manufacture, and additionalsteps performed by a programmable processor implementing Applicants'computer program product;

FIG. 9 summarizes additional steps in Applicants' method, additionalsteps implemented by Applicants' article of manufacture, and additionalsteps performed by a programmable processor implementing Applicants'computer program product;

FIG. 10 summarizes additional steps in Applicants' method, additionalsteps implemented by Applicants' article of manufacture, and additionalsteps performed by a programmable processor implementing Applicants'computer program product;

FIG. 11 summarizes additional steps in Applicants' method, additionalsteps implemented by Applicants' article of manufacture, and additionalsteps performed by a programmable processor implementing Applicants'computer program product;

FIG. 12 summarizes additional steps in Applicants' method, additionalsteps implemented by Applicants' article of manufacture, and additionalsteps performed by a programmable processor implementing Applicants'computer program product; and

FIG. 13 summarizes additional steps in Applicants' method, additionalsteps implemented by Applicants' article of manufacture, and additionalsteps performed by a programmable processor implementing Applicants'computer program product.

DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS

The invention is described in preferred embodiments in the followingdescription with reference to the FIGs., in which like numbers representthe same or similar elements. Reference throughout this specification to“one embodiment,” “an embodiment,” or similar language means that aparticular feature, structure, or characteristic described in connectionwith the embodiment is included in at least one embodiment of thepresent invention. Thus, appearances of the phrases “in one embodiment,”“in an embodiment,” “in certain embodiments,” and similar languagethroughout this specification may, but do not necessarily, all refer tothe same embodiment. It is noted that, as used in this description, thesingular foing s “a,” “an” and “the” include plural referents unless thecontext clearly dictates otherwise.

The described features, structures, or characteristics of theinvention(s) may be combined in any suitable manner in one or moreembodiments. In the following description, numerous specific details arerecited to provide a thorough understanding of embodiments of theinvention(s). One skilled in the relevant art will recognize, however,that the invention(s) may be practiced without one or more of thespecific details, or with other methods, components, materials, and soforth. In other instances, well-known structures, materials, oroperations are not shown or described in detail to avoid obscuringaspects of the invention.

The schematic flow chart diagrams included are generally set forth as alogical flow-chart diagram (e.g., FIGS. 4, 5A, 5B, 6, 7, 8, 9, 10, 11,12, and 13). As such, the depicted order and labeled steps areindicative of one embodiment of the presented method. In certainembodiments, other steps and methods are conceived that are equivalentin function, logic, or effect to one or more steps, or portions thereof,of the illustrated method. Additionally, the format and symbols employedare provided to explain the logical steps of the method and areunderstood not to limit the scope of the method. Although various arrowtypes and line types are employed in the flow-chart diagrams, they areunderstood not to limit the scope of the corresponding method (e.g.,FIGS. 4, 5A, 5B, 6, 7, 8, 9, 10, 11, 12, and 13). Indeed, some arrows orother connectors may be used to indicate only the logical flow of themethod. For instance, an arrow indicates a waiting or monitoring periodof unspecified duration between enumerated steps of the depicted method.Additionally, the order in which a particular method occurs may or maynot strictly adhere to the order of the corresponding steps shown.

In certain embodiments, individual steps recited in FIGS. 4, 5A, 5B, 6,7, 8, 9, 10, 11, 12, and 13, are combined, eliminated, or reordered.

Applicants' system and method includes a network wherein a video can becreated using any available video format, and that video can be sharedbetween a plurality of people. In certain embodiments, Applicants'system and method can be used by multiple members of a social network toassociate annotations with a Playable Media File, and/or to initiatediscussion threads associated with that Playable Media File.

Referring to FIG. 1, a portion of Applicants' network 100 isillustrated. In certain embodiments, Applicants' network 100 comprises asocial network. In certain embodiments, Applicants' social network 100is an open social network. In certain embodiments, Applicants' socialnetwork 100 is a closed social network.

In the illustrated embodiment of FIG. 1, network 100 comprises a networkserver 130 that is communicatively connected to a computing device 110through a first communication fabric 120 and a computing device 150through a second communication fabric 140. In certain embodiments, thenetwork server 130 is owned and/or operated by a social networkingservice provider while computing devices 110 and 150 are owned and/oroperated by users or members of the social network 100, where a memberhas a profile containing information about the member stored ininformation 137 of the social network server 130. In some embodiments,the computing device 110 is owned and operated by a first member and thecomputing device 150 is owned and operated by a second member.

For the sake of clarity, FIG. 1 shows a first computing device 110,network server 130, and a second computing device 150. FIG. 1 should notbe taken as limiting. Rather, in other embodiments any number ofentities and corresponding devices can be part of the network 100, andfurther, although FIG. 1 shows two communication fabrics 120 and 140, inother embodiments, less then, or more than, two communication fabricsare provided in the social network 100. For example, in certainembodiments, the communication fabric 120 and the communication fabric140 are the same communication fabric.

In certain embodiments, the computing devices 110 and 150 and host 130are each an article of manufacture. Examples of the article ofmanufacture include: a server, a mainframe computer, a mobile telephone,a smart telephone, a personal digital assistant, a personal computer, alaptop, a set-top box, an MP3 player, an email enabled device, a tabletcomputer, a web enabled device, or other special purpose computer eachhaving one or more processors (e.g., a Central Processing Unit, aGraphical Processing Unit, or a microprocessor) that are configured toexecute Applicants' API to receive information fields, transmitinformation fields, store information fields, or perform methods.

By way of illustration and not limitation, FIG. 1 illustrates thecomputing device 110, the network server 130, and the computing device150 as each including a processor 112, 132, and 152, respectively, anon-transitory computer readable medium 113, 133, and 153, respectively,having a series of instructions 114, 134, and 154, respectively, encodedtherein, an input/output means 111, 131, and 151, respectively, such asa keyboard, a mouse, a stylus, touch screen, a camera, a scanner, or aprinter. Computer readable program code 114, 134, and 154 is encoded innon-transitory computer readable media 113, 133, and 153, respectively.Processors 112, 132, and 152 utilize computer readable program code 114,134, and 154, respectively, to operate computing devices 110, 130, and150, respectively. In certain embodiments, the computing device 110,130, and 150 employ hardware and/or software that supportsaccelerometers, gyroscopes, magnetometers (e.g., solid state compasses)and the like.

Processors 112 and 152 utilize Applicants' Application ProgramInterfaces (APIs) 116 and 156, respectively, encoded in computerreadable media 113 and 153, respectively, to communicate with host 130and access Applicants' algorithm 136 encoded in computer readable medium133 to implement Applicants' social network and method described herein.Algorithm 136 comprises Applicants' source code to operate a public orprivate social network, and when implemented by computing device 110causes a graphic user interface (“GUI”) to be displayed on displayscreen 115, wherein that GUI comprises and displays a plurality ofgraphical interactable objects. A member using computing device 110 (orcomputing device 150) can utilize that GUI to access a logical volume,such as for example and without limitation logical volume 180 (FIG. 2),wherein information specific to that user are encoded in logical volume180. The member and/or user can further utilize the GUI to accessApplicants' social network as described herein.

Processor 132 accesses the computer readable program code 134, encodedon the non-transitory computer readable medium 133, and executes aninstruction 136 to electronically communicate with the computing device110 via the communication fabric 120 or electronically communicate withthe computing device 150 via the communication fabric 140. Encodedinformation 137 includes, for example and without limitation, the datacommunicated or information fields communicated, e.g., date and time oftransmission, frequency of transmission and the like, with any or all ofthe computing device 110 and the computing device 150. In certainembodiments, information 137 is analyzed and/or mined. In certainembodiments, information 137 is encoded in a plurality of individuallogical volumes specific to each member/user.

In certain embodiments, computing devices 110 and 150 further compriseone or more display screens 115 and 155, respectively. In certainembodiments, display screens 115 and 155 comprise an LED display device.

In certain embodiments, the information fields received from thecomputing device 110 at the network server 130 are exchanged with othercomputing devices not shown in FIG. 1. For example, information fieldsreceived from a social network in which the member has an Internetpresence is sent to the social network server 130 and stored at theinformation 137 in association with a profile of the member.Alternatively, or in combination, the information fields transmittedfrom the computing device 110 to the social network server 130 is sentto an account of the member within the social network.

In certain embodiments, information 137 is encoded in one or more harddisk drives, tape cartridge libraries, optical disks, combinationsthereof, and/or any suitable data storage medium, storing one or moredatabases, or the components thereof, in a single location or inmultiple locations, or as an array such as a Direct Access StorageDevice (DASD), redundant array of independent disks (RAID),virtualization device, etc. In certain embodiments, information 137 isstructured by a database model, such as a relational model, ahierarchical model, a network model, an entity-relationship model, anobject-oriented model, or a combination thereof. For example, in certainembodiments, the information 137 is structured in a relational modelthat stores a plurality of Identities for each of a plurality of membersas attributes in a matrix.

In certain embodiments, the computing devices 110, 130, and 150 includewired and/or wireless communication devices which employ variouscommunication protocols including near field (e.g., “Blue Tooth”) and/orfar field communication capabilities (e.g., satellite communication orcommunication to cell sites of a cellular network) that support anynumber of services such as: telephony, Short Message Service (SMS) fortext messaging, Multimedia. Messaging Service (MMS) for transfer ofphotographs and videos, electronic mail (email) access, or GlobalPositioning System (GPS) service, for example.

As illustrated in FIG. 1, the communication fabrics 120 and 140 eachcomprise one or more switches 121 and 141, respectively. In certainembodiments, communication fabrics 120 and 140 are the same. In certainembodiments, at least one of the communication fabrics 120 and 140comprises the Internet, an intranet, an extranet, a storage area network(SAN), a wide area network (WAN), a local area network (LAN), a virtualprivate network, a satellite communications network, an interactivetelevision network, or any combination of the foregoing. In certainembodiments, at least one of the communication fabrics 120 and 140contains either or both wired or wireless connections for thetransmission of signals including electrical connections, magneticconnections, or a combination thereof. Examples of these types ofconnections include: radio frequency connections, optical connections,telephone links, a Digital Subscriber Line, or a cable link. Moreover,communication fabrics 120 and 140 utilize any of a variety ofcommunication protocols, such as Transmission Control Protocol/InternetProtocol (TCP/IP), for example.

Referring to FIG. 2, the computing devices 110, 130 and 150 are eachcommunicatively connected to the communication fabric 120, such as a WANor Internet. The network server 130 is a computing device that is ownedand/or operated by a networking service provider, and computing devices110 and 150 are owned and/or operated by individual network users. Incertain embodiments, network server is owned and/or operated by a socialnetwork provider. In certain embodiments, the network server 130provides access to the computing devices 110 and 150 to executeApplicants' source code 136 via a Software as a Service (SaaS) means.

In certain embodiments information fields are received from one or morecomputing devices 110, 130 and/or 150 and stored on the “Cloud” such asdata storage library 160 and/or 170. Referring to FIG. 2, each of thedata storage libraries 160 and 170 have corresponding physical storagedevices, such as and without limitation physical data storage devices163-169 for data storage library 160 and 173-179 for data storagelibrary 170.

In certain embodiments, data storage library 160 and data storagelibrary 170 are configured in a Peer To Peer Remote Copy (“PPRC”)storage system, wherein the information fields in data storage library160 is automatically backed up in data storage library 170. In certainembodiments, Applicants' PPRC storage system utilizes synchronouscopying. In certain embodiments, Applicants' PPRC storage systemutilizes asynchronous copying.

In the illustrated embodiment of FIG. 2, physical storage device 163 isconfigured to comprise logical volume 180. In certain embodiments, eachphysical storage device in data storage library 160 is configured tocomprise a plurality of logical volumes. Similarly, each physicalstorage device in data storage library 170 is configured to comprise acorresponding plurality of logical volumes. In certain embodiments, eachmember of the social network is assigned a unique logical volume. Insuch embodiments a permission file 157 may be encoded in computerreadable medium 133 or in data storage libraries 160 and 170 thatassociates each logical volume with a social network member and furtherassociates each logical volume with access permissions for certaindesignated other social network users. Each social network userconfigures his/her own logical volume permissions. In certainembodiments, if a first user desires to remove access permissions from asecond user, that first member simply accesses his/her permissions fileand deletes the second user. Thereafter, the second user cannot retrievedata stored on the logical volume associated with the first user.

Referring to FIGS. 1, 2, and 3, Applicants' algorithm 136, and itsfunctions, can be accessed by users of Applicants' network 100 tocreate, share, edit, associate one or more annotations with, and/orassociate one or more discussion threads with, a Playable Media File.One member, using a computing device such as computing device 110 or150, to access network server 130, streams a Playable Media File fromits original storage location. In certain embodiments the Playable MediaFile is encoded in a unique logical volume accessible by a first user.That first user can grant access to the Playable Media File to one ormore other users by storing access permissions in permission file 157.In certain embodiments the access includes levels such as, and withoutlimitation, view only, view/edit, view/edit/share, and the like. Incertain embodiments the access includes conditions or restrictions suchas expirations dates, limitations on the number of times the file can beviewed, and the like.

Referring now to 3, when a user having permission streams the PlayableMedia file, and if that user associates an annotation with the PlayableMedia File, a data profile 300 is created for the Playable Media Fileand is stored on network server 130, and optionally on data storagelibrary 160 or 170. Data profile 300 includes various informationfields, including the Global Unique Identifier (GUID) 302 associatedwith the creating member, a description 304 of the Playable Media File(e.g., a title), and permissions 306 held by various members to access,edit, and/or share the Playable Media File. Data profile 300 may furtherinclude subsequently added annotations 312 and discussion threads 328.

Applicants' algorithm 136 provides the ability for each user havingaccess to the Playable Media File to associate annotations for displayat various timeline locations as the Playable Media File is streamedfrom its original storage location. Such annotations may be any knownformat and may include text, video, audio, pictures, or a combinationthereof, and are stored as a separate file. When subsequent viewersexecute the Playable Media File the annotation(s) will be visible at thespecified time segment. In certain such embodiments, the annotation isshown in the same window as the Playable Media File and may be visibleover the Playable Media File. In other embodiments, the annotation isshown in a separate window. Applicants' algorithm 136 generates atimeline which displays when the Playable Media File is streamed.

In certain embodiments, the member creating the annotation can setpermissions for the annotation, restricting who can view or edit theannotation. In such embodiments, the permissions are stored inpermission file 157. Referring now to FIG. 4, in step 410 a firstnetwork user encodes a first Playable Media file in a first storagelocation. In step 420, the first user receives a request to share thefirst Playable Media File with a second network user. In step 430, thefirst network user grants access to the first Playable Media File to therequesting second network user. The first user's grant of access rightto the second network user is encoded in a permission file 157. In step440, the network server provides notice to the second network userregarding that second user's access privilege(s) to access the firstPlayable Media File from the first storage location. In certainembodiments the notice may further include a link to the Playable MediaFile or information about where and how to access the Playable MediaFile.

For those Playable Media Files having annotations, data profile 300further contains information fields concerning each annotation312(a)-(n), including one or more of the type 320 of the annotation(text, audio, video, picture, etc.), the location 322 of the associatedannotation within the Playable Media File, the GUID 324 of the memberwho initiated the annotation, and a description 326 for the annotation,such as a title or other descriptor.

In certain embodiments Applicants' algorithm 136 further generates atable of contents of the annotations added to the Playable Media Fileusing the information in data profile 300, including a link to eachannotation. The link may be in the form of a pointer, electronicbookmark, hyperlink, or any other type of link. Where the link is ahyperlink, the hyperlink may link to an annotation that is saved as adifferent file on data storage library 160 or 170. In certainembodiments, annotation(s) may be viewed and edited separately from thePlayable Media File. For each new annotation added to the Playable MediaFile, Applicants' algorithm 136 updates the table of contents. In suchembodiments, the table of contents may include one or more of a captionor other description of the annotation, the time of the annotationwithin the Playable Media File, the author of the annotation, and thedate and/or time the annotation was made.

FIG. 5 summarizes Applicants' method to save and share annotationsassociated with a Playable Media File. Referring now to FIG. 5, in step510 the method encodes an annotation to be associated with a PlayableMedia File in a storage location, i.e. a file, that differs from thePlayable Media File. In certain embodiments, step 510 is performed byApplicants' algorithm 136. In certain embodiments, step 510 is performedby the user creating the annotation.

In certain embodiments, the “visibility” for annotation saved in step510 is by default defined as “public,” meaning that any other user whohas permission to stream the Playable Media File has permission tostream that “public” annotation. In step 520, Applicants' methoddetermines whether to change that “visibility” from “public” to“private.”

If the method elects in step 520 not to change the visibility frompublic to private, then the method transitions from step 520 to step 530and includes a storage location for the saved annotation in a sitemappublished to search engines. Applicants' method transitions from step530 to step 570.

Alternatively, if the method elects in step 520 to change the visibilityfrom public to private, then the method transitions from step 520 tostep 540 and does not include a storage location for the savedannotation in a sitemap published to search engines. In certainembodiments, step 540 is performed by Applicants' network server 130. Incertain embodiments, step 540 is performed by Applicants' algorithm 136.

Applicants' method transitions from step 540 to step 550 wherein themethod determines whether to share the saved annotation to specificrecipients. In certain embodiments, step 550 is performed by Applicants'network server 130. In certain embodiments, step 550 is performed byApplicants' algorithm 136.

If Applicants' method elects in step 550 to not share the annotationwith specific recipients, then the method transitions from step 550 tostep 570. Alternatively, if Applicants' method elects in step 550 toshare the annotation with specific recipients, then the methodtransitions from step 550 to step 560 wherein the user to prompted toenters recipients in the form of name(s), and/or email address, and/orsocial media account. Applicants' method transitions from step 560 tostep 570.

In step 570, the method determines if the annotation encoded in step 510is the first annotation for the Playable Media File. If the methoddetermines if the annotation saved in step 510 comprises a firstannotation for the Playable Media File, then the method transitions tostep 590 wherein a table of contents is created for the Playable MediaFile. Alternatively, if the annotation is not the first and the PlayableMedia File already has a table of contents, then the method transitionsto step 580 wherein the method updates the table of contents to includean entry for the saved annotation of step 510. For example, upon receiptof an annotation from computing device 150 of the second user, networkserver 130 determines if the Playable Media. File already hasannotations (and thus a table of contents) by checking annotations field312 (FIG. 3) of data profile 300. If no annotations are included in thePlayable Media File, the network server 130 creates a table of contentsusing the data in data profile 300 and the annotation and any relatedinformation received from computing device 150. In certain embodimentsthe table of contents is then saved separately from the Playable MediaFile. In certain embodiments, the table of contents is stored onApplicants' network server 130. In certain such embodiments, the tableof contents is associated with the Playable Media File such that it isalways presented to a user viewing the Playable Media File. In otherembodiments, the table of contents may be viewed separately from thePlayable Media File.

Referring now to FIG. 5B, in certain embodiments, Applicants' method caninitiate a discussion thread to be displayed at a specific timelinelocation of the Playable Media File. In step 505, Applicants' networkserver receives a request from a member to initiate a discussion threadat a specified timeline location in the Playable Media File. In step515, Applicants' algorithm 136 generates the discussion thread to becomevisible when the Playable Media File is streamed and viewed at thetimeline specified. In certain embodiments the request further includesa type identifier indicating whether the discussion thread is to be openor closed. Where the open identifier is provided, the discussion threadis open to all members and therefore any member may view and add acomment to the discussion thread. Where the closed identifier isprovided, the discussion thread is private and only available toparticular members. In such embodiments the request provided by theinitiating member includes identifiers for one or more members that areto have access to the discussion thread. In certain such embodimentsApplicants' algorithm 136 further sends invitations to the identifiedmembers to invite them to participate in the thread. In certain suchembodiments, the permissions given to various members to access andparticipate in the discussion thread is stored in permissions file 157.

Members having access to the Playable Media File can then add written,audible, pictorial, or video comments to the thread. In step 525,Applicants' network server receives content for inclusion in thediscussion thread. In step 535, Applicants' method adds a descriptor anda timeline for the discussion thread in a Table of Contents associatedwith the Playable Media File. In step 545, additional content for thediscussion thread that is later received is added to the discussionthread in the order received. Further in step 545, a descriptor for thatlater-added content is added to the Table of Contents.

In certain embodiments only members having edit privileges can post inthe discussion thread. In certain embodiments only individuals havingspecific discussion thread privileges can post in the discussion thread.In certain embodiments, the privilege to post in a thread is specific tothe particular thread, and therefore a member may have access to post inone thread but not another. In certain embodiments, the discussionthread is visible to any individual viewing the Playable Media File. Inother embodiments, the discussion thread is visible only to certainindividuals, such as those that have been given specific access to thethread or those that have edit privileges for the video.

For Playable Media Files having discussion threads, data profile 300further includes information fields for each discussion thread 328,including for each comment 330(a)-(n) made in the discussion thread by amember, the GLAD of the member author of the comment, and a description334, which may be the comment itself or another identifier.

Applicants' further disclose an article of manufacture comprising aplatform for information management, such as computing device 110, 130,and/or 150, comprising computer readable program code, such as API 116,API 156, and/or Applicants' social network source code 136, residing ina non-transitory computer readable medium, such as computer readablemedium 113, 133, and/or 153, where that computer readable program codecan be executed by a processor, such as processor 112 (FIG. 1) and/or132 (FIG. 1), and/or 152, to implement Applicants' method recited inFIGS. 4, 5A, 5B, 6, 7, 8, 9, 10, and 11.

Applicants further disclose a non-transitory computer readable mediumwherein Applicants' computer program product is encoded herein.Applicants' computer program product comprises computer readable programcode that can be executed by a programmable processor to implementApplicants' method recited in FIGS. 4, 5A, 5B, 6, 7, 8, 9, 10, and 11.In either case, in certain embodiments, the computer readable programcode is encoded in a non-transitory computer readable medium comprising,for example, a magnetic information storage medium, an opticalinformation storage medium, an electronic information storage medium,and the like. “Electronic storage media,” means, for example and withoutlimitation, one or more devices, such as and without limitation, a PROM,EPROM, EEPROM, Flash PROM, compactflash, smartmedia, and the like.

Referring now to FIG. 6, in step 610 Applicants disclose determiningwhether to create a plurality of virtual clips, wherein each virtualclip comprises content encoded in one or more Media File, playable orstatic, from a beginning of the Media File, playable or static, up to adesignated end point, wherein “Media File, playable or static,” means afile selected from the group consisting of an audio file, a video file,an audiovisual file, slide show file, AVI file, MP3 file, MP4 file, WMAfile, WAV file, Flash, MPEG file, an image file (JPG, TIF, PNG, Bitmap,and the like), a PDF file, a text file, a VISIO file, a .ppt file, a.key file, a spreadsheet file, and any type of 3D media file. In certainembodiments, such a 3D media file requires holographicprojection/holographic viewing. In certain embodiments, “Media File,playable or static,” further includes any file which generates aStereoscopic visual display that can be viewed through stereoscopiceyewear or played on 3D display technology such as 3D TV, and in certainembodiments comprises a Virtual Reality/Augmented Realty file that canbe viewed through Virtual Reality devices such as Hololense, OculusRift, Sony Playstation VR, HCT VIVE, Razer OSBR HDK, Zeiss VR1, SOV VR,Freefly, and the like.

If a user elects to create such a plurality of virtual clips, the methodtransitions from step 610 to step 710 (FIG. 7). Referring now to FIG. 7,in step 710 the method, without pausing the media play, displays an ENDCLIP interactable graphical object and a CANCEL CLIP interactablegraphical object.

If the user activates the CANCEL CLIP interactable graphical object instep 720, then the method transitions from step 720 to step 750 andends. Alternatively, if the user does not activate the CANCEL CLIPinteractable graphical object in step 710, then the method transitionsfrom step 710 to step 730 wherein the method determines if the END CLIPinteractable graphical object has been activated. If the methoddetermines in step 730 that the END CLIP interactable graphical objecthas not been activated, then the method pauses at step 730 until theuser activates the END CLIP interactable graphical object, wherein themethod transitions from step 730 to step 740 wherein the methodtemporarily stores a begin time, end time, and total media duration.

In certain embodiments, in step 740 an end timeline location, and thetotal media duration are saved to the user's computing device. Incertain embodiments, in step 740 the begin time, the end time, and atotal media duration are saved to Applicants' network server 130 (FIG.1).

If the user elects in step 610 NOT to create a plurality of virtualclips each from a beginning to a designated end point, then the methodtransitions from step 610 to step 620 wherein the method may elect tocreate a plurality of virtual clips comprising content from one or moreMedia File, playable or static from a designated start point to adesignated end point. If the user elects to create a plurality ofvirtual clips, where each virtual clip comprises content from one ormore Media File, playable or statics, and wherein the user specifies adesignated timeline location to begin the virtual clip, then the methodtransitions from step 620 to step 810 (FIG. 8).

Referring now to FIG. 8, in step 810 the method streams the Media File,playable or static from a designated start point, and without pausingthe media play, displays an END CLIP interactable graphical object and aCANCEL CLIP interactable graphical object.

If the user activates the CANCEL CLIP interactable graphical object instep 820, then the method transitions from step 820 to step 850 andends. Alternatively, if the user does not activate the CANCEL CLIPinteractable graphical object in step 810, then the method transitionsfrom step 810 to step 830 wherein the method determines if the END CLIPinteractable graphical object has been activated. If the methoddetermines in step 830 that the END CLIP interactable graphical objecthas not been activated, then the method pauses at step 830 until theuser activates the END CLIP interactable graphical object, wherein themethod transitions from step 830 to step 840 wherein the methodtemporarily stores a begin time, end time, and total media duration.

In certain embodiments, in step 740 a begin timeline location, an endtimeline location, and the total media duration are saved to the user'scomputing device. In certain embodiments, in step 740 the begin time,the end time, and a total media duration are saved to Applicants'network server 130 (FIG. 1).

If the user elects in step 610 NOT to create a plurality of virtualclips each from a beginning to a designated end point, and if the userelects NOT to create a plurality of virtual clips, where each virtualclip comprises content from one or more Media File, playable or statics,and wherein the user specifies a designated timeline location to beginthe virtual clip, then the method transitions from step 620 to step 630wherein the method determines if the user elects to configure acomposite virtual clip.

If the user elects to configure a composite virtual clip in step 630,the method transitions from step 630 to step 910. Referring now to FIG.9, in step 910 the method selects (N) saved virtual clips to configure acomposite virtual clip, and determines an order of presentation forthose (N) virtual clips.

In step 920, the method sets (M) initially to 1. In step 930, the methodconfigures a (M)th link to a (M)th saved virtual clip, wherein the (M)thsaved virtual clip will be the (M)th virtual clip to be displayed whenthe composite virtual clip is activated. In step 930, the method savesthe (M)th link in a composite virtual clip file.

In step 950, the method determines if (114) equals (N), i.e. if all (N)links to the (N) selected (N) saved virtual clips have been created andsaved. If the method determines in step 950 that (M) does not equal (N),then the method transitions from step 950 to step 960 wherein the methodincrements (M) by 1, i.e. sets (M) equal to (M)+1. The methodtransitions from step 960 to step 930 and continues as described herein.Alternatively, if the method determines in step 950 that (M) equals (N),then the method transitions from step 950 to step 970 and ends.

If the user elects in step 610 NOT to create a plurality of virtualclips each from a beginning to a designated end point, and if the userelects in step 620 NOT to create a plurality of virtual clips, whereeach virtual clip comprises content from one or more Media File,playable or statics, and wherein the user specifies a designatedtimeline location to begin the virtual clip, and if the user does NOTelect in step 630 to configure a composite virtual clip in step 630,then in step 640 the method determines whether to display a compositevirtual clip.

If the user elects to display a composite virtual clip in step 640, themethod transitions to step 1010 where the method provides a storagelocation for a composite virtual clip file configured to access (M)saved clips. In step 1020, the method sets (P) initially to 1. In step1030 the method activates a (P)th link encoded in the composite virtualclip file to stream a (P)th saved virtual clip to the user's device.

In step 1040 the method determines if all (N) clips comprising theselected composite virtual clip have been displayed, i.e. if (P) equals(N). If the method determines in step 1040 that (P) does not equal (N),then the method transitions from step 1040 to step 1050 and increments(P) by 1, i.e. sets (P) equal to (P)+1. The method transitions from step1050 to step 1030 and continues as described herein. Alternatively, ifthe method determines in step 1040 that (P) equals (N), the methodtransitions to step 1060 and ends.

If a user elects in step 650 to apply one or more transitioning effectto one or more saved virtual clips, then the method transitions fromstep 650 to step 1110. As those skilled in the art will appreciate, a“transition” comprises an animation-like effect when Applicants' methodto display a composite virtual clip moves from one previously savedvirtual clip to a next previously saved virtual clip during an on-screenpresentation. Applicants' method allows control the speed of eachtransition effect. In addition, Applicants' method also permits theaddition of sound transitions when moving from a saved virtual clip tothe next saved virtual clip.

If a user desires in step 650 to add one or more transition effects to apreviously configured composite virtual clip, Applicants' methodtransitions from step 650 to step 1110 (FIG. 11). Referring now to FIG.11, in step 1110 the method selects a previously configured compositevirtual clip, wherein that composite virtual clip is configured toinclude (N) previously saved virtual clips in an order from 1 to (N).

In step 1120, the method selects a transition effect having a knownstorage location. In step 1130, the method configures an (i)thtransition effect link pointing to the known storage location for thedesired transition effect.

In step 1140, the method configures the (i)th transition effect link tobe activated after activation of a link to an (i)th virtual clip andbefore activation of a link to an (i+1)th virtual clip. In step 1150,the method updates the composite virtual clip file to include the (i)thtransition effect link.

In step 1160, the method determines if the user desires to configureadditional transition effects for the selected composite virtual clip.If the user elects to configure additional transition effect links, thenthe method transition from step 1160 to step 1120 and continues asdescribed herein. Alternatively, if the user does not elect to configureadditional transition effect links, then the method transition from step1160 to step 1170 and ends.

If a user desires in step 660 to add one or more lensing effects to apreviously configured composite virtual clip, Applicants' methodtransitions from step 660 to step 1210 (FIG. 12) As those skilled in theart will appreciate, a “lensing” effect includes, for example andwithout limitation, overlay of one or more color filters, imagedistortions, and annotations.

Referring now to FIG. 12, in step 1210 the method selects a previouslyconfigured composite virtual clip, wherein that composite virtual clipis configured to include (N) previously saved virtual clips in an orderfrom 1 to (N).

In step 1220, the method selects a lensing effect having a known storagelocation. In step 1230, the method configures an (i)th lensing effectlink pointing to the known storage location for the desired lensingeffect.

In step 1240, the method configures the (i)th lensing effect link to besimultaneously with activation of a link to an (i)th virtual clip. Instep 1250, the method updates the composite virtual clip file to includethe (i)th lensing effect link.

In step 1260, the method determines if the user desires to configureadditional lensing effects for the selected composite virtual clip. Ifthe user elects to configure additional transition effect links, thenthe method transition from step 1260 to step 1220 and continues asdescribed herein. Alternatively, if the user does not elect to configureadditional transition effect links, then the method transition from step1260 to step 1270 and ends.

If a user desires in step 670 to add one or more sound effects to apreviously configured composite virtual clip, Applicants' methodtransitions from step 670 to step 1310 (FIG. 13). Referring now to FIG.13, in step 1310 the method selects a previously configured compositevirtual clip, wherein that composite virtual clip is configured toinclude (N) previously saved virtual clips in an order from 1 to (N).

In step 1320, the method selects a sound effect having a known storagelocation. In step 1330, the method configures an (i)th sound effect linkpointing to the known storage location for the desired lensing effect.

In step 1340, the method configures the (i)th sound effect link to besimultaneously with activation of a link to an (i)th virtual clip. Instep 1350, the method updates the composite virtual clip file to includethe (i)th sound effect link.

In step 1360, the method determines if the user desires to configureadditional sound effects for the selected composite virtual clip. If theuser elects to configure additional sound effect links, then the methodtransition from step 1360 to step 1320 and continues as describedherein. Alternatively, if the user does not elect to configureadditional sound effect links, then the method transition from step 1360to step 1370 and ends.

While the preferred embodiments of the present invention have beenillustrated in detail, it should be apparent that modifications andadaptations to those embodiments may occur to one skilled in the artwithout departing from the scope of the present invention as set forthherein.

We claim:
 1. A method to make a composite virtual clip, comprising:selecting (N) saved virtual clips and an order of presentation for eachvirtual clip; initially setting (M)=1; configuring a (M)th pointer toindicate a storage location for a (M)th saved virtual clip, wherein a(M)th virtual clip comprises a (M)th content from one or more designatedsources and (M) is greater than or equal to 1 and less than or equal to(N); saving said (M)th pointer; determining if (M) equals (N); when (M)is less than (N), setting (M) equal to (M)+1; and repeating saidconfiguring, saving, and determining until (M) equals (N).
 2. The methodof claim 1, wherein said composite virtual clip further comprises one ormore first type virtual clips, wherein the first type virtual clipcomprises content from a Media File, playable or static, from abeginning to a first designated end point, wherein a Media File,playable or static, is selected from the group consisting of AVI file,MP3 file, MP4 file, WMA file, WAV file, Flash, MPEG file, an image file(JPG, TIF, PNG, GIF, Bitmap, and the like), a PDF file, a text file, aVISIO file, a .ppt file, a .key file, a spreadsheet file, and any typeof 3D media file which provides a Stereoscopic visual display that canbe viewed through stereoscopic eyewear or played on 3D displaytechnology such as 3D TV, and in certain embodiments comprises a VirtualReality/Augmented Realty file that can be viewed through Virtual Realitydevices such as Hololense, Oculus Rift, Sony Playstation VR, HCT VIVE,Razer OSBR HDK, Zeiss VR1, SOV VR, Freefly, and the like.
 3. The methodof claim 2, further comprising: displaying a first interactablegraphical object, wherein the first interactable graphical objectcomprises a Cancel Clip link; simultaneously displaying a secondinteractable graphical object, wherein the second interactable graphicalobject comprises an End Clip link; when activating the firstinteractable graphical object, a begin time location, end time location,and first media duration of the first type virtual clip are not stored;and when activating the second interactable graphical object, the begintime location, end time location, and first media during of the firsttype virtual clip are stored.
 4. The method of claim 1, wherein saidcomposite virtual clip further comprises one or more second type virtualclips, wherein the second type virtual clip comprising content from aMedia File, playable or static, from a designated beginning to a seconddesignated end point, wherein said Media File, playable or static, isselected from the group consisting of an AVI file, MP3 file, MP4 file,WMA file, WAV file, Flash, MPEG file, an image file (JPG, TIF, PNG, GIF,Bitmap, and the like), a PDF file, a text file, a .ppt file, a .keyfile, a VISIO file, a spreadsheet file, and any type of 3D media filewhich provides a Stereoscopic visual display that can be viewed throughstereoscopic eyewear or played on 3D display technology such as 3D TV,and in certain embodiments comprises a Virtual Reality/Augmented Realtyfile that can be viewed through Virtual Reality devices such asHololense, Oculus Rift, Sony Playstation VR, HCT VIVE, Razer OSBR HDK,Zeiss VR1, SOV VR, Freefly, and the like.
 5. The method of claim 4,further comprising: displaying a first interactable graphical object,wherein the first interactable graphical object comprises a Cancel Cliplink; simultaneously displaying a second interactable graphical object,wherein the second interactable graphical object comprises an End Cliplink; when activating the third interactable graphical object, a begintime location, end time location, and first media duration of the secondtype virtual clip are not stored; and when activating the fourthinteractable graphical object, the begin time location, end timelocation, and first media during of the second type virtual clip arestored.
 6. The method of claim 1, wherein said composite virtual clipfurther comprises one or more first type virtual clips and one or moresecond type virtual clips.
 7. A method to display a composite virtualclip, comprising: providing a storage location for a composite virtualclip stored in a composite virtual clip file, wherein the compositevirtual clip is configured to access (N) saved virtual clips; initiallysetting (P)=1; activating a (P)th link encoded in the composite virtualclip file to stream a (P)th saved virtual clip to a user's device;determining if (P) equals (N); when (P) is less than (N), setting (P)equals (P)+1; and repeating said activating and determining until (P)equals (N).
 8. The method of claim 7, wherein said composite virtualclip further comprises one or more first type virtual clips, wherein thefirst type virtual clip comprising content from a Media File, playableor static from a beginning to a first designated end point, wherein saidMedia File, static or playable, is selected from the group consisting ofan AVI file, MP3 file, MP4 file, WMA file, WAV file, Flash, MPEG file,an image file (JPG, TIF, PNG, GIF, Bitmap, and the like), a PDF file, atext file, a VISIO file, a .ppt file, a .key file, a spreadsheet file,and any type of 3D media file which provides a Stereoscopic visualdisplay that can be viewed through stereoscopic eyewear or played on 3Ddisplay technology such as 3D TV, and in certain embodiments comprises aVirtual Reality/Augmented Realty file that can be viewed through VirtualReality devices such as Hololense, Oculus Rift, Sony Playstation VR, HCTVIVE, Razer OSBR HDK, Zeiss VR1, SOV VR, Freefly, and the like.
 9. Themethod of claim 7, wherein said composite virtual clip further comprisesone or more second type virtual clips, wherein the second type virtualclip comprising content from a Media File, playable or static from adesignated start point to a second designated end point, wherein saidMedia File, static or playable, is selected from the group consisting ofan AVI file, MP3 file, MP4 file, WMA file, WAV file, Flash, MPEG file,an image file (JPG, TIF, PNG, GIF, Bitmap, and the like), a PDF file, atext file, a .ppt file, a .key file, a VISIO file, a spreadsheet file,and any type of 3D media file which provides a Stereoscopic visualdisplay that can be viewed through stereoscopic eyewear or played on 3Ddisplay technology such as 3D TV, and in certain embodiments comprises aVirtual Reality/Augmented Realty file that can be viewed through VirtualReality devices such as Hololense, Oculus Rift, Sony Playstation VR, HCTVIVE, Razer OSBR HDK, Zeiss VR1, SOV VR, Freefly, and the like.
 10. Themethod of claim 7, wherein said composite virtual clip further comprisesone or more first type virtual clips and one or more second type virtualclips.
 11. The method of claim 7, further comprising adding a transitioneffect to the composite virtual clip by: selecting the composite virtualclip, wherein the composite virtual clip is defined by (N) saved virtualclips and an order of presentation of each virtual clip from 1 to N;selecting a transition effect having a known storage location; initiallysetting (i)=1; configuring an (i)th transition effect link pointing to aknown (i)th transition effect storage location; configuring the (i)thtransition effect link to be activated after activating an (i)th virtualclip link and before activation of an (i+1)th virtual clip link, wherein(i) is between 1 and (N)−1; updating the composite virtual clip file toinclude the (i)th transition effect link; determining if (i) equals (N);when (i) is less than (N), setting (i) equals (i)+(1); and repeatingselecting and configuring to add the (i)th transition effect to thecomposite virtual clip until (i) equals (N)-1.
 12. The method of claim7, further comprising adding an effect to the composite virtual clip,wherein the effect includes at least one of a lensing effect and asecond effect, by: selecting the composite virtual clip, wherein thecomposite virtual clip defined by (N) saved virtual clips and an orderof presentation of each virtual clip from 1 to N; selecting an effecthaving a known storage location; setting (k) initially equals to 1;configuring an (k)th effect link pointing to a known (k)th storagelocation; configuring the (k)th effect link to be activatedsimultaneously with an (k)th virtual clip, wherein (k) is between 1 and(N); updating the composite virtual clip to include the (k)th effectlink; determining if (k) equals (N); when (k) is less than (N), setting(k) equals (k)+(1); and repeating selecting and configuring to add the(k)th effect to the composite virtual clip until (k) equals (N).
 13. Anon-transitory computer usable medium encoded with a computer programproduct to make a composite virtual clip and usable with programmablecomputer processor disposed within a controller, comprising: computerreadable program code which causes said programmable computer processorto select (N) saved virtual clips and an order of presentation for eachvirtual clip; computer readable program code which causes saidprogrammable computer processor to initially set (M)=1; computerreadable program code which causes said programmable computer processorto configure a (M)th pointer to indicate a storage location for a (M)thsaved virtual clip, wherein a (M) th virtual clip comprises a (M)thcontent from one or more designated sources and (M) is greater than orequal to 1 and less than or equal to (N); computer readable program codewhich causes said programmable computer processor to save said (M)thpointer; computer readable program code which causes said programmablecomputer processor to determine if (M) equals (N); when (M) is less than(N), computer readable program code which causes said programmablecomputer processor to set (M) equal to (M)+1; and computer readableprogram code which causes said programmable computer processor to repeatsaid configuring, saving, and determining until (M) equals (N).
 14. Thecomputer program product of claim 13, wherein said composite virtualclip further comprises one or more first type virtual clips, wherein thefirst type virtual clip comprises content from a Media File, playable orstatic from a beginning to a first designated end point, wherein saidMedia File, static or playable, is selected from the group consisting ofan AVI file, MP3 file, MP4 file, WMA file, WAV file, Flash, MPEG file,an image file (JPG, TIF, PNG, GIF, Bitmap, and the like), a PDF file, atext file, a .ppt file, a .key file, a VISIO file, a spreadsheet file,and any type of 3D media file which provides a Stereoscopic visualdisplay that can be viewed through stereoscopic eyewear or played on 3Ddisplay technology such as 3D TV, and in certain embodiments comprises aVirtual Reality/Augmented Realty file that can be viewed through VirtualReality devices such as Hololense, Oculus Rift, Sony Playstation VR, HCTVIVE, Razer OSBR HDK, Zeiss VR1, SOV VR, Freefly, and the like.
 15. Thecomputer program product of claim 14, further comprising computerreadable program code which causes said programmable computer processorto: display a first interactable graphical object, wherein the firstinteractable graphical object comprises a Cancel Clip link;simultaneously display a second interactable graphical object a, whereinthe second interactable graphical object comprises an End Clip link;when activating the first interactable graphical object, not to store abegin time location, end time location, and first media duration of thefirst type virtual clip; and when activating the second interactablegraphical object, store the begin time location, end time location, andfirst media during of the first type virtual clip.
 16. The computerprogram product of claim 13, wherein said composite virtual clip furthercomprises one or more second type virtual clips, wherein the second typevirtual clip comprising content from a Media File, playable or staticfrom a designated beginning to a second designated end point, whereinsaid Media File, static or playable, is selected from the groupconsisting of an AVI file, MP3 file, MP4 file, WMA file, WAV file,Flash, MPEG file, an image file (JPG, TIF, PNG, GIF, Bitmap, and thelike), a PDF file, a .ppt file, a .key file, a text file, a VISIO file,a spreadsheet file, and any type of 3D media file which provides aStereoscopic visual display that can be viewed through stereoscopiceyewear or played on 3D display technology such as 3D TV, and in certainembodiments comprises a Virtual Reality/Augmented Realty file that canbe viewed through Virtual Reality devices such as Hololense, OculusRift, Sony Playstation VR, HCT VIVE, Razer OSBR HDK, Zeiss VR1, SOV VR,Freefly, and the like.
 17. The computer program product of claim 16,further comprising computer readable program code which causes saidprogrammable computer processor to: display a first interactablegraphical object, wherein the first interactable graphical objectcomprises a Cancel Clip link; simultaneously display a secondinteractable graphical object, wherein the second interactable graphicalobject comprises an End Clip link; when activating the thirdinteractable graphical object, not to store a begin time location, endtime location, and first media duration of the second type virtual clip;and when activating the fourth interactable graphical object, store thebegin time location, end time location, and first media during of thesecond type virtual clip.
 18. The computer program product of claim 13,wherein said composite virtual clip further comprises one or more firsttype virtual clips and one or more second type virtual clips.
 19. Anon-transitory computer usable medium encoded with a computer programproduct to display a composite virtual clip and usable with programmablecomputer processor disposed within a controller, comprising: computerreadable program code which causes said programmable computer processorto provide a storage location for a composite virtual clip stored in acomposite virtual clip file, wherein the composite virtual clip isconfigured to access (N) saved virtual clips; computer readable programcode which causes said programmable computer processor to initially set(P)=1; computer readable program code which causes said programmablecomputer processor to activate a (P)th link encoded in the compositevirtual clip file to stream a (P)th saved virtual clip to a user'sdevice; computer readable program code which causes said programmablecomputer processor to determine if (P) equals (N); when (P) is less than(N), computer readable program code which causes said programmablecomputer processor to set (P) equals (P)+1; and computer readableprogram code which causes said programmable computer processor to repeatsaid activating and determining until (P) equals (N).
 20. The computerprogram product of claim 19, wherein said composite virtual clip furthercomprises one or more first type virtual clips, wherein the first typevirtual clip comprising content from a Media File, playable or staticfrom a beginning to a first designated end point, wherein said MediaFile, static or playable, is selected from the group consisting of anAVI file, MP3 file, MP4 file, WMA file, WAV file, Flash, MPEG file, animage file (JPG, TIF, PNG, GIF, Bitmap, and the like), a PDF file, atext file, a .ppt file, a .key file, a VISIO file, a spreadsheet file,and any type of 3D media file which provides a Stereoscopic visualdisplay that can be viewed through stereoscopic eyewear or played on 3Ddisplay technology such as 3D TV, and in certain embodiments comprises aVirtual Reality/Augmented Realty file that can be viewed through VirtualReality devices such as Hololense, Oculus Rift, Sony Playstation VR, HCTVIVE, Razer OSBR HDK, Zeiss VR1, SOV VR, Freefly, and the like.
 21. Thecomputer program product of claim 19, wherein said composite virtualclip further comprises one or more second type virtual clips, whereinthe second type virtual clip comprising content from a Media File,playable or static from a designated start point to a second designatedend point, wherein said Media File, static or playable, is selected fromthe group consisting of an AVI file, MP3 file, MP4 file, WMA file, WAVfile, Flash, MPEG file, an image file (JPG, TIF, PNG, GIF, Bitmap, andthe like), a PDF file, a text file, a .ppt file, a .key file, a VISIOfile, a spreadsheet file, and any type of 3D media file which provides aStereoscopic visual display that can be viewed through stereoscopiceyewear or played on 3D display technology such as 3D TV, and in certainembodiments comprises a Virtual Reality/Augmented Realty file that canbe viewed through Virtual Reality devices such as Hololense, OculusRift, Sony Playstation VR, HCT VIVE, Razer OSBR HDK, Zeiss VR1, SOV VR,Freefly, and the like.
 22. The computer program product of claim 19,wherein said composite virtual clip further comprises one or more firsttype virtual clips and one or more second type virtual clips.
 23. Thecomputer program product of claim 19, further comprising computerreadable program code encoded with a computer program product to add atransition effect to the composite virtual clip and usable withprogrammable computer processor disposed within a controller,comprising: computer readable program code which causes saidprogrammable computer processor to select the composite virtual clip,wherein the composite virtual clip is defined by (N) saved virtual clipsand an order of presentation of each virtual clip from 1 to N; computerreadable program code which causes said programmable computer processorto select a transition effect having a known storage location; computerreadable program code which causes said programmable computer processorto initially set (i)=1; computer readable program code which causes saidprogrammable computer processor to configure an (i)th transition effectlink pointing to a known (i)th transition effect storage location;computer readable program code which causes said programmable computerprocessor to configure the (i)th transition effect link to be activatedafter activating an (i)th virtual clip link and before activation of an(i+1)th virtual clip, link wherein (i) is between 1 and (N)-1; computerreadable program code which causes said programmable computer processorto update the composite virtual clip file o include the (i)th transitioneffect link; computer readable program code which causes saidprogrammable computer processor to determine if (i) equals (N); when (i)is less than (N), computer readable program code which causes saidprogrammable computer processor to set (i) equals (i)+(1); and computerreadable program code which causes said programmable computer processorto repeat selecting and configuring to add the (i)th transition effectto the composite virtual clip until (i) equals (N).
 24. The computerprogram product of claim 19, further comprising computer readableprogram code encoded with a computer program product to add an effectincluding at least one of a lensing effect and a sound effect to thecomposite virtual clip and usable with programmable computer processordisposed within a controller, comprising: computer readable program codewhich causes said programmable computer processor to select thecomposite virtual clip, wherein the composite virtual clip includes (N)saved virtual clips and an order of presentation of each virtual clipfrom 1 to N; computer readable program code which causes saidprogrammable computer processor to select an effect having a knownstorage location; computer readable program code which causes saidprogrammable computer processor to set (k) initially equals to 1;computer readable program code which causes said programmable computerprocessor to configure an (k)th effect link pointing to the known (k)thstorage location; computer readable program code which causes saidprogrammable computer processor to configure the (k)th effect link to beactivated simultaneously with an (k)th virtual clip, wherein (i) isbetween 1 and (N); computer readable program code which causes saidprogrammable computer processor to update the composite virtual clip toinclude the (k)th effect link; computer readable program code whichcauses said programmable computer processor to determine if (k) equals(N); when (k) is less than (N), computer readable program code whichcauses said programmable computer processor to set (k) equals (k)+(1);and computer readable program code which causes said programmablecomputer processor to repeat selecting and configuring to add the (k)theffect to the composite virtual clip until (k) equals (N).